Использование буфера обмена Windows для импорта и экспорта данных

При импорте или экспорте данных, созданных с помощью приложения Windows, можно воспользоваться буфером обмена Windows. Это средство позволяет применять стандартные команды Windows и быстро перемещать данные из одного приложения Windows в другое. Это особенно удобно при добавлении или замене существующих данных в таблице Access 2002.

Однако этот метод имеет одно существенное ограничение — структура таблицы, в которую импортируются данные, должна соответствовать данным, передаваемым через буфер обмена. Например, для правильной вставки данных из строк рабочего листа Excel в таблицу Access необходимо, чтобы типы данных полей таблицы Access соответствовали типам данных каждого столбца, скопированного в буфер обмена диапазона ячеек.

Чтобы добавить новые записи в таблицу Access 2002 при помощи буфера обмена Windows:

  1. Запустите приложение, которое будет использоваться для копирования данных в буфер обмена (в нашем примере это Microsoft Excel), и откройте файл с данными.
  2. Выделите данные, которые нужно добавить в таблицу Access. Например, выделите диапазон ячеек рабочего листа, начиная со столбца, соответствующего первому полю таблицы Access (рис. 3.44). При этом необязательно выделять все оставшиеся столбцы, соответствующие полям таблицы Access, поскольку Access 2002 добавит пустые значения или значения по умолчанию в поля, соответствующие столбцам, не включенным в выделенный диапазон.
  3. Выберите команду Правка, Копировать (Edit, Copy) или нажмите комбинацию клавиш <Ctrl>+<C>, чтобы скопировать выделенный диапазон ячеек в буфер обмена Windows.
  4. Откройте таблицу, в которую нужно добавить данные, в режиме Таблицы.

Рис. 3.44. В таблицу Access 2000 будет добавлен выделенный диапазон ячеек

  1. Выберите команду Правка, Добавить из буфера (Edit, Paste Append). Если в процессе добавления записей не возникнет ошибок, появится окно, запрашивающее подтверждение на добавление записей в таблицу (рис. 3.45). Нажмите кнопку Да (Yes). Новые записи будут добавлены в конец таблицы Access (рис. 3.46). Чтобы разместить добавленные записи в правильной последовательности, выберите команду Записи, Удалить фильтр (Records, Remove Filter/Sort).

При добавлении в таблицу Access 2002 данных с помощью буфера обмена Windows могут возникнуть ошибки по одной из двух причин:

Рис. 3.45. Подтвердите вставку записей из буфера обмена

Рис. 3.46. Выделенные записи добавлены из буфера обмена

В любом случае Access 2000 создаст таблицу "Ошибки вставки" (Paste Errors) и запишет в нее все записи, вызвавшие ошибки. Использование таблицы "Ошибки вставки" аналогично использованию таблицы ошибок импорта данных, описанной ранее в этой главе.

Ошибки, вызванные наличием повторяющихся значений в первичном ключе таблицы Access 2002, приводят к появлению на экране диалоговых окон с сообщениями об ошибках. Читая сообщения в этих окнах, вы можете получить более подробную информацию о каждой ошибке, если нажмете кнопку Справка (Help), можете запретить вывод дальнейших сообщений об ошибках, а можете просто прервать процесс добавления записей. В любом случае все ошибки будут зафиксированы в таблице "Ошибки вставки" (на рис. 3.47 приведена таблица, которая была получена при повторной вставке в базу данных шести уже имеющихся в ней записей).

После завершения добавления записей в таблицу появится сообщение о том; что записи, которые не удалось добавить из буфера обмена, помещены в таблицу "Ошибки вставки".

Рис. 3.47. Таблица "Ошибки вставки"

Совет

Если в процессе вставки выдается много сообщений об ошибках, вызванных повторяющимися значениями в ключевом поле, лучше прервать этот процесс (реальная вставка записей происходит только после подтверждения в конце процесса), найти записи с повторяющимися значениями, исправить их и заново выполнить процесс вставки. Для того чтобы быстро найти повторяющиеся данные, можно выполнить запрос специального вида — "Повторяющиеся записи". Раскройте список запросов в окне базы данных, нажмите кнопку Создать (New), в появившемся диалоговом окне Новый запрос (New Query) выделите элемент Повторяющиеся записи (Find Duplicates Query Wizard) и нажмите кнопку ОК. (Более подробно о создании запросов см. гл. 4.)

Замечание

Если записи вставляются в таблицу, ключом которой является поле типа Счетчик (AutoNumber), то при добавлении новых записей они перенумеровываются в соответствии с последним значением счетчика. То есть даже если значения этого поля в добавляемых записях будут совпадать с ключами в уже существующих записях, они будут вставлены, при этом значения ключей в новых записях будут отличаться от тех, что они имели до вставки.

Access позволяет не только добавить в таблицу записи из буфера обмена, но и заменить уже существующие в таблице записи. При этом все столбцы данных, скопированные в буфер обмена, должны соответствовать полям таблицы Access, причем первый столбец обязательно должен соответствовать первому полю. Однако в буфере обмена могут быть не все столбцы таблицы Access. В этом случае данные в полях таблицы, для которых отсутствуют столбцы в буфере обмена, останутся неизменными. А вот число строк в буфере обмена должно соответствовать числу выделенных заменяемых строк в таблице. Это число не должно быть меньше, чем число строк в буфере. В противном случае данные из последних строк буфера будут игнорироваться. Процедура замены записей аналогична описанной выше процедуре добавления записей, только перед вставкой нужно выделить заменяемые записи в таблице.

Простейшим способом экспорта данных из таблицы Access в другое приложение Windows также является копирование содержимого таблицы Access в буфер обмена с

последующей вставкой в документ другого приложения. Например, чтобы скопировать таблицу Access в документ Word через буфер обмена:

  1. Откройте нужную таблицу в режиме Таблицы (мы использовали для примера таблицу "Поставщики").
  2. Выделите в этой таблице нужный диапазон ячеек, нужное количество записей или все записи. Таблица "Поставщики" примет вид, приведенный на рис. 3.48. Если необходимо выделить все поля во всех записях таблицы, выберите команду Правка, Выделить все записи (Edit, Select All Records) или щелкните левой кнопкой мыши по серому прямоугольнику в левом верхнем углу окна на пересечении строки заголовков столбцов и столбца выделения записей.

Рис. 3.48. Выделенный диапазон ячеек в таблице "Поставщики"

  1. Нажмите комбинацию клавиш <Ctrl>+<C> или выберите команду Правка, Копировать, чтобы скопировать выделенные данные в буфер обмена.
  2. Запустите Microsoft Word и создайте в нем новый документ, выбрав команду Файл, Создать (File, New).
  3. Выберите команду Правка, Вставить (Edit, Paste) или нажмите комбинацию клавиш <Ctrl>+<V>. Данные из буфера обмена будут вставлены в документ Word в виде отформатированной таблицы (рис. 3.49).

Заметьте, что первая строка данных, копируемых Access в буфер обмена, всегда содержит названия столбцов таблицы. Если документ Word создается при помощи нескольких операций копирования, ненужные заголовки столбцов таблицы требуется удалить вручную.

Рис. 3.49. Данные, импортированные в документ Word для Windows в виде таблицы